/**
 * 给定数组A，生成数组B
 * 每个Bi，要么是Ai，要么是Ai-Aj，其中Aj是任意其他元素
 * 要求Bi必须是正数
 * 且所有Bi要么都是奇数要么都是偶数，问是否可行
 * 奇偶分开检查
 * 如果要求Bi都是奇数，则对每一个偶数Ai在A中查找是否有比它小的奇数
 * 如果要求Bi都是偶数，则对每一个奇数Ai在A中查找是否有比它小的奇数
 */
#include <bits/stdc++.h>
using namespace std;

#include <bits/extc++.h>
using namespace __gnu_pbds;

using llt = long long;
using pii = pair<int, int>;
using vi = vector<int>;
using vvi = vector<vi>;

int N;
vi A;
vi Ji, Ou;

bool procJi(){
    for(auto i : A){
        if(i & 1) continue;
        auto p = upper_bound(Ji.begin(), Ji.end(), i);
        if(p == Ji.begin()) return false;
    }
    return true;
}

bool procOu(){
    for(auto i : A){
        if(i & 1){
            auto p = lower_bound(Ji.begin(), Ji.end(), i);
            if(p == Ji.begin()) return false;
        }
    }
    return true;
}

bool proc(){
    Ji.clear(); Ji.reserve(N);
    Ou.clear(); Ou.reserve(N);
    for(auto i : A){
        if(i & 1) Ji.emplace_back(i);
        else Ou.push_back(i);
    }
    sort(Ji.begin(), Ji.end());
    Ji.erase(unique(Ji.begin(), Ji.end()), Ji.end());
    sort(Ou.begin(), Ou.end());
    Ou.erase(unique(Ou.begin(), Ou.end()), Ou.end());
    return procJi() or procOu();
}

int main(){
#ifndef ONLINE_JUDGE
    freopen("z.txt", "r", stdin);
#endif
    ios::sync_with_stdio(false);cin.tie(nullptr);cout.tie(0);
    int nofkase = 1;
    cin >> nofkase;
    while(nofkase--){
        cin >> N;
        A.assign(N, 0);
        for(auto & i : A) cin >> i;
        cout << (proc() ? "YES" : "NO") << endl;
    }
    return 0;
}